package fachada;


import java.sql.SQLException;
import java.util.Collection;
import endereco.Endereco;
import funcionario.CadastroFuncionario;
import funcionario.Funcionario;
import funcionario.exceptions.ExceptionNuloOuVazio;

public class FachadaFuncionario {
	Funcionario empregado = new Funcionario();
	CadastroFuncionario cf = new CadastroFuncionario();

	public void inserirFuncionario(String vBairro, String vCEP, String vCidade, String vComissao, String vCPF, String vEmail, String vEndereco, String vEstado,  String vRG, String vNome, String vNumero, String vReajuste, String vSalario) throws ExceptionNuloOuVazio, ClassNotFoundException, SQLException{
		double cComissao = 0;
		double cSalario = 0;
		double cReajuste = 0;
		cComissao = Double.parseDouble(vComissao);
		cSalario = Double.parseDouble(vSalario);
		cReajuste = Double.parseDouble(vReajuste); 

		
		Endereco end = new Endereco();
		
		end.setBairro(vBairro);
		end.setCep(vCEP);
		end.setCidade(vCidade);
		end.setEstado(vEstado);
		end.setLogradouro(vEndereco);
		end.setNumero(vNumero);
		
		empregado.setEndereco(end);
		empregado.setComissao(cComissao);
		empregado.setCpf(vCPF);
		empregado.setEmail(vEmail);
		empregado.setIdentidade(vRG);
		empregado.setNomeFuncionario(vNome);
		empregado.setReajuste(cReajuste);
		empregado.setSalario(cSalario);
		cf.InserirFuncionario(empregado);
	}
    
	public void excluirFuncionario(String vCodigo, String vBairro, String vCEP, String vCidade, String vComissao, String vCPF, String vEmail, String vEndereco, String vEstado,  String vRG, String vNome, String vNumero, String vReajuste, String vSalario) throws ExceptionNuloOuVazio, ClassNotFoundException, SQLException{
		if (vNome.trim().length() < 1){
			throw new ExceptionNuloOuVazio();
		}
		double cComissao = 0;
		double cSalario = 0;
		double cReajuste = 0;
		cComissao = Double.parseDouble(vComissao);
		cSalario = Double.parseDouble(vSalario);
		cReajuste = Double.parseDouble(vReajuste); 
	
		Endereco end = new Endereco();
		
		end.setBairro(vBairro);
		end.setCep(vCEP);
		end.setCidade(vCidade);
		end.setEstado(vEstado);
		end.setLogradouro(vEndereco);
		end.setNumero(vNumero);
		
		int vCod = Integer.parseInt(vCodigo);
		empregado.setCodigoFuncionario(vCod);
		empregado.setEndereco(end);
		empregado.setComissao(cComissao);
		empregado.setCpf(vCPF);
		empregado.setEmail(vEmail);
		empregado.setIdentidade(vRG);
		empregado.setNomeFuncionario(vNome);
		empregado.setReajuste(cReajuste);
		empregado.setSalario(cSalario);

		cf.ExcluirFuncionario(empregado);
	}
	public void alterarFuncionario(String vCodigo, String vBairro, String vCEP, String vCidade, String vComissao, String vCPF, String vEmail, String vEndereco, String vEstado,  String vRG, String vNome, String vNumero, String vReajuste, String vSalario) throws ExceptionNuloOuVazio, SQLException, ClassNotFoundException{
		if (vNome.trim().length() < 1){
			throw new ExceptionNuloOuVazio();
		}
		double cComissao = 0;
		double cSalario = 0;
		double cReajuste = 0;
		cComissao = Double.parseDouble(vComissao);
		cSalario = Double.parseDouble(vSalario);
		cReajuste = Double.parseDouble(vReajuste); 
		int vCod = Integer.parseInt(vCodigo);
        int vCodEnd = 0;
		vCodEnd = cf.pegarendereco(vCod);
		
		Endereco end = new Endereco();
		
		end.setCodigoEndereco(vCodEnd);
		end.setBairro(vBairro);
		end.setCep(vCEP);
		end.setCidade(vCidade);
		end.setEstado(vEstado);
		end.setLogradouro(vEndereco);
		end.setNumero(vNumero);
		
		
		empregado.setCodigoFuncionario(vCod);
		empregado.setEndereco(end);
		empregado.setComissao(cComissao);
		empregado.setCpf(vCPF);
		empregado.setEmail(vEmail);
		empregado.setIdentidade(vRG);
		empregado.setNomeFuncionario(vNome);
		empregado.setReajuste(cReajuste);
		empregado.setSalario(cSalario);
		
		cf.AlterFuncionario(empregado);
	}
	public Funcionario pesquisarFuncionario(String vCodigo) throws ExceptionNuloOuVazio, ClassNotFoundException, SQLException{
		if (vCodigo.trim().length() < 1){
			throw new ExceptionNuloOuVazio();
		}
		return cf.PesquisarFuncionario(vCodigo);
	}
	
	public Collection<Funcionario> preenchertodos() throws SQLException, ClassNotFoundException{
		return cf.listTodos();
	}
	
	public String pegarcod() throws ClassNotFoundException, SQLException{
		return cf.pegarcod();
	}
	
	public Collection<Funcionario> preenchePesquisa(String vNome) throws ClassNotFoundException, SQLException, ExceptionNuloOuVazio{
		return cf.pesqListaFuncionario(vNome);
	}


}
